﻿/* 2014/7/4 */
using System.Collections.Generic;

namespace Cosmos.Media.Play
{
    public interface IPlayEntity
    {
        /// <summary>
        /// Gets a collection of tag texts assigned to this play entity.
        /// </summary>
        PlayTagCollection Tags
        {
            get;
        }

        /// <summary>
        /// Gets a collection of play attributes assigned to this play entity.
        /// </summary>
        PlayAttributeCollection Attributes
        {
            get;
        }

        /// <summary>
        /// Gets a list of play attributes inherited from parent level of this play entity.
        /// Only if a play attribute is set "inherited", it would be included.
        /// 
        /// If a play attribute is not set "allow multiple", 
        /// it will be overridden by any attribute in child level which has the same name
        /// and will override any attribute in parent level which has the same name.
        /// </summary>
        IList<PlayAttribute> InheritedAttributes
        {
            get;
        }
    }
}
